<template>
  <div class="page_content daraBoardStreetAnalysis_content">
    <div class="header_box p-10 bold flex flex-ac flex-jsb">
      <div class="title bold">垃圾量趋势图</div>
    </div>
    <div class="main_box m-10">
      <div ref="mainEchart" class="main_echart"></div>
    </div>
  </div>
</template>
<script lang="ts" setup>
import {
  ref,
  computed,
  watch,
  onMounted,
  onBeforeUnmount,
  reactive,
  shallowRef,
  onUnmounted,
} from "vue";
import * as echarts from "echarts";
const mainEchart = ref<any>(null);
import { useMousePosition } from "@/hooks/dateSelect";
const { timeType } = useMousePosition();
const props: any = defineProps({});
const myChart = shallowRef();
import { streetAnalysisChartApi } from "@/api/dataBoard";
const streetAnalysisChartObj: any = reactive({
  data: {
    otherGarbage: [], //其他车辆
    kitchenWaste: [], //厨余车辆
    xList: [],
  },
});

watch(
  timeType,
  () => {
    init();
  },
  {
    immediate: true,
  }
);
onMounted(() => {
  myChart.value = echarts.init(mainEchart.value);
  window.addEventListener("resize", handleResize);
});

onBeforeUnmount(() => { });
onUnmounted(() => {
  window.removeEventListener("resize", handleResize);
});

function init() {
  getStreetAnalysisChart();
}
// 数据看板_企业-街道分析图
async function getStreetAnalysisChart() {
  streetAnalysisChartObj.data = {};
  let info = {
    timeType: timeType.value || 0,
  };
  const res = await streetAnalysisChartApi(info);
  if (!myChart.value) {
    myChart.value = echarts.init(mainEchart.value);
  }
  chartInit();
}
const chartInit = () => {
  console.log(9999, myChart.value);

  let color = ["#FF8700", "#ffc300", "#00e473", "#009DFF"];
  // 绘制图表
  myChart.value.setOption({
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        type: 'cross',
        crossStyle: {
          color: '#999'
        }
      }
    },
    toolbox: {
    },
    legend: {
      data: ['Evaporation', 'Precipitation', 'Temperature']
    },
    xAxis: [
      {
        type: 'category',
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
        axisPointer: {
          type: 'shadow'
        }
      }
    ],
    yAxis: [
      {
        type: 'value',
        name: 'Precipitation',
        min: 0,
        max: 250,
        interval: 50,
        axisLabel: {
          formatter: '{value} ml'
        }
      },
      {
        type: 'value',
        name: 'Temperature',
        min: 0,
        max: 25,
        interval: 5,
        axisLabel: {
          formatter: '{value} °C'
        }
      }
    ],
    series: [
      {
        name: 'Evaporation',
        type: 'bar',
        tooltip: {
          valueFormatter: function (value: any) {
            return value + ' ml';
          }
        },
        data: [
          2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6, 162.2, 32.6, 20.0, 6.4, 3.3
        ]
      },
      {
        name: 'Precipitation',
        type: 'bar',
        tooltip: {
          valueFormatter: function (value: any) {
            return value + ' ml';
          }
        },
        data: [
          2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6, 182.2, 48.7, 18.8, 6.0, 2.3
        ]
      },
      {
        name: 'Temperature',
        type: 'line',
        yAxisIndex: 1,
        tooltip: {
          valueFormatter: function (value: any) {
            return value + ' °C';
          }
        },
        data: [2.0, 2.2, 3.3, 4.5, 6.3, 10.2, 20.3, 23.4, 23.0, 16.5, 12.0, 6.2]
      }
    ]
  });
};
const handleResize = () => {
  if (myChart.value) {
    myChart.value.resize();
  }
};
</script>

<style lang="scss" scoped>
.daraBoardStreetAnalysis_content {
  height: 400px;


  .main_box {
    .main_echart {
      width: 100%;
      height: calc(400px - 35px - 20px);
    }
  }
}
</style>